package br;

import java.util.ArrayList;
import java.util.Random;

import model.Deme;
import model.Especie;

public class MigracoesRunnable implements Runnable{

	private Deme d;
	private int migracoes;
	private Random r;
	private ArrayList<Deme> vizinhos;

	public MigracoesRunnable(Deme d, int migracoes, ArrayList<Deme> vizinhos, Random r){
		this.d = d;
		this.migracoes = migracoes;
		this.vizinhos = vizinhos;
	}
	
	public void run() {
		ArrayList<Especie> individuosSaem = d.removerIndividuos(r, migracoes);
		
		while(migracoes > 0){
			Deme demeDestino = vizinhos.get(r.nextInt(vizinhos.size()));
			demeDestino.inserirIndividuos(individuosSaem.remove(r.nextInt(individuosSaem.size())));
			migracoes--;
		}
		
	}

}
